package com.ttx.pattern.example.visitor.after;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * @author TimFruit
 * @date 19-6-2 上午1:25
 */
public class ConcreteElement implements Element {

    Map<String, Integer> dataStructure=new HashMap<>();

    // ------------------------------- 暴露给访问者的方法

    public void put(String key, Integer value){
        dataStructure.put(key, value);
    }

    public Integer get(String key){
        return dataStructure.get(key);
    }

    public Set<String> getKeySet(){
        return dataStructure.keySet();
    }

    public Collection<Integer> getValues(){
        return dataStructure.values();
    }


    // ------------------------------------ 接受访问方法

    @Override
    public void accept(Visitor visitor) {
        visitor.visit(this); // 将自身引用传递给访问者
    }
}
